﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

class FireObject:DangerousObject
{
    protected new FireObject.Type thisType;

    public FireObject(FireObject.Type type, Vector3 placement)
        : base(type, placement)
    {
        thisType = type;
    }

    public new class Type:DangerousObject.Type
    {
        public static readonly Type Fire = new Type(
            ObjectFactory.TypeEnum.Fire,//type
            new Vector3(102, 0, 0),//origin
            new Vector3(205, 0, 100),//collision
            new ArrayList {
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("fireSpriteSheet"), 
                    new Rectangle(0,0,285,314), 
                    0, 
                    new Vector2(142,307)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("fireSpriteSheet"), 
                    new Rectangle(285,0,285,314), 
                    0, 
                    new Vector2(142,307)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("fireSpriteSheet"), 
                    new Rectangle(570,0,285,314), 
                    0, 
                    new Vector2(142,307)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("fireSpriteSheet"), 
                    new Rectangle(0,314,285,314), 
                    0, 
                    new Vector2(142,307)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("fireSpriteSheet"), 
                    new Rectangle(285,314,285,314), 
                    0, 
                    new Vector2(142,307)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("fireSpriteSheet"), 
                    new Rectangle(570,314,285,314), 
                    0, 
                    new Vector2(142,307))});//frameList

        protected Type(ObjectFactory.TypeEnum type, Vector3 origin, Vector3 collision,
            ArrayList stasisFrames)
            : base(type, origin, collision, stasisFrames)
        {
            sDepth = 0f;
        }

        public static new FireObject.Type getType(ObjectFactory.TypeEnum te)
        {
            switch (te)
            {
                case ObjectFactory.TypeEnum.Fire: return Fire;
            }
            return null;
        }
    }
}
